package com.softtown.modules.sys.dao;

import com.softtown.common.dao.BaseDao;
import com.softtown.modules.sys.entity.CompSysRoleDataScropeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: Dingyayong
 * @Date: 2019/6/17 12:01
 * @Description:
 */
@Mapper
public interface CompSysRoleDataScropeDao extends BaseDao<CompSysRoleDataScropeEntity> {

    /**
     * 根据角色id找出相应数据
     *
     * @param roleId
     * @return CompSysRoleDataScropeEntity
     * @author Dingyayong
     * @date 2019/6/17 13:07
     */
    List<CompSysRoleDataScropeEntity> getByRoleId(Long roleId);

    /**
     * 根据角色ID，获取部门ID列表
     * @param roleId roleId
     * @return
     * @author Dingyayong
     * @date 2019/6/18 9:54
     */
    List<Long> getDeptIdList(Long roleId);

    /**
     * 根据角色ID，公司id，部门id获取信息
     * @param compId
     * @param roleId
     * @param deptId
     * @return com.softtown.modules.sys.entity.CompSysRoleDataScropeEntity
     * @Author fuming
     * @Date 2020/5/26 17:23
     */
    CompSysRoleDataScropeEntity getDataEntity(@Param("compId") Long compId, @Param("roleId") Long roleId, @Param("deptId") Long deptId);

    /**
     * 根据角色ID，公司id获取信息
     * @param compId
     * @param roleId
     * @return java.util.List<com.softtown.modules.sys.entity.CompSysRoleDataScropeEntity>
     * @Author fuming
     * @Date 2020/5/26 17:23
     */
    List<CompSysRoleDataScropeEntity> getDataEntityList(@Param("compId") Long compId, @Param("roleId") Long roleId);

    /**
     * 更新
     * @param  compSysRoleDataScropeEntity
     * @return CompSysRoleDataScropeEntity
     * @author Dingyayong
     * @date 2019/6/18 9:54
     */
    void updateData(CompSysRoleDataScropeEntity compSysRoleDataScropeEntity);
}
